This section provides background information related to the present disclosure which is not necessarily prior art.
Transmission Control Protocol (TCP) is a connection-oriented, reliable and octet stream based communication protocol, and is specified by the Request For Comments (RFC) 793 of Removal of Industrial Exception Task Force (RIETF) of Internet Engineering Task Force (IETF). In a simplified Open System Interconnection (OSI) Reference Model, TCP provides functions of the transport layer.
TCP specifies that it is required to establish a connection before sending application layer data. In order to establish the connection, multiple information synchronization processes should be performed between both communicating parties, which is generally called a three-step handshake. During the three-step handshake, two or three network data packets, not including the application layer data, are exchanged.
In a conventional solution for network access, an access server does not access the application layer data, but performs scheduling when receiving the first data packet for establishing the connection. In TCP, the first data packet is the first data packet during the three-step handshake. Through scheduling, the access server selects a background server serving this connection, and then all data packets belonging to the same connection are forwarded to the selected background server via the access server. During network access based on the application layer data, when the access server receives a data packet of the three-step handshake, the access server is unable to select a background server serving this connection, because the data packet does not include the application layer data. Herein, the network access based on the application layer data means that the access server needs to access the application layer data to determine a forwarding target before forwarding data.
Conventional solutions exist for network access based on the application layer data. In these solutions, the access server establishes a first TCP connection with a client device through the three-step handshake first, and then receives the application layer data through the first TCP connection. The access server obtains data for scheduling from the application layer data and selects a background server according to the obtained data. The selected background server is a target server to which the application layer data is to be forwarded. The access server then establishes a second TCP connection with the background server through the three-step handshake. Afterwards, the background server sends data to the access server through the second TCP connection, and the access server sends the data to the client device through the first TCP connection. Through this method, the network access of the client device may be implemented.
However, these solutions for network access based on the application layer data raise the following considerations.
The access server needs to establish the TCP connection respectively with the client device and the background server through the three-step handshake. Accordingly, the implementation is complex.
Because the access server needs to establish the TCP connection respectively with the client device and the background server, significant CPU and memory resources are required. Further, because the data receiving and sending process requires additional memory resources, and input-output traffic all pass through the access server, the efficiency of the access server is low and, thus, the access server may easily become a bottleneck.
Because the background server and the client device cannot communicate directly, but communicate through the access server, these available options for network access are complex for the background server.